package reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

/**
 * 利用反射机制将Person类中的所有公开的无参方法调用一遍
 * 1.获取Person类对象
 * 2.获取Person类对象中的所有公开方法
 * 3.判断每一个方法，利用Method对象
 *   3.1 是否为公开方法
 *   3.2 是否无参
 * 4.如果满足上述条件则调用该方法，invoke
 */
public class Test {
    public static void main(String[] args) throws Exception{
        Class cls = Person.class;
        Object  obj = cls.newInstance();

        Method[] methods = cls.getMethods();
        for (Method method : methods){
            if (method.getModifiers()==Modifier.PUBLIC && method.getParameterCount()==0){
            System.out.println("调用方法："+method.getName()+"()");
            method.invoke(obj);
            }
        }
    }
}
